package com.lsy.poi.row.validator;

import org.apache.poi.xssf.usermodel.XSSFRow;

import com.lsy.poi.Logger;
import com.lsy.poi.exception.ParseException;


public abstract class RowValidator extends Logger {
	
	/**
	 *<br> RowValidator VS CellValidator ：
	 *<br>
	 *<br> CellValidator 是面向 单个元素的：
	 *<br> 检查 本cell 是否满足 条件。但是 对于 "验证" 这件事情来说，cell 和 cell之间，基本不会有任何关联
	 *<br>
	 *<br> RowValidator 是面向 多个元素的：
	 *<br> 如果只是检查 本row 是否满足 条件的话，这种情况很少见。row 维度的 "验证" 更多地 会涉及到 多个 row
	 */
	public abstract void doValidate(Object[] cellValues, XSSFRow row) throws ParseException;
	
	/**
	 * row: 能提供 row 的 坐标（创建 ParseException 时，需要用到）
	 */
	public void validate(Object[] cellValues, XSSFRow row) { 
		
		try {
			
			doValidate(cellValues, row);
			
		} catch (ParseException e) {
			logError(e);
		} catch (Exception e) {
//			logError(e);
		}
		
	}
}
